// 1.0 引入axios
import axios from 'axios'
import qs from 'qs'

// 2.0 设置默认的请求路径及配置
axios.defaults.baseURL = 'http://wxopen.besthuishenghuo.com/api'
axios.defaults.timeout = 10000

// 3.0 设置请求和响应拦截
axios.interceptors.request.use((config) => {
  return config
})

axios.interceptors.response.use((res) => {
  return res.data
})

// 4.0 导出请求和响应的方式
export default {
  get(url, params) {
    return new Promise((resolve, reject) => {
      axios
        .get(url, { params })
        .then((res) => {
          // 成功 执行成功的回调并且传入成功的数据
          resolve(res)
        })
        .catch(() => {
          // 将来统一处理失败有可能是专门的组件进行提示
          reject(new Error('请求失败'))
        })
    })
  },
  post(url, body) {
    return new Promise((resolve, reject) => {
      // qs.stringify 会把对象转换为 k=v&k=v 这种格式
      axios
        .post(url, qs.stringify(body))
        .then((res) => {
          // 成功 执行成功的回调并且传入成功的数据
          resolve(res)
        })
        .catch(() => {
          // 将来统一处理失败有可能是专门的组件进行提示
          reject(new Error('请求失败'))
        })
    })
  }
}
